﻿using System;
using System.Collections.Generic;
using System.Text;

namespace GraffitiExtras.Plugins.CommunityCredit
{
    /// <summary>
    /// Represents a point category.
    /// </summary>
    internal class PointCategory
    {
        #region Properties and Fields

        /// <summary>
        /// Unique identifier.
        /// </summary>
        public int ID { get; set; }

        /// <summary>
        /// The area for the point category.
        /// </summary>
        public string Area { get; set; }

        /// <summary>
        /// The string code for the point category (that is used by Community Credit webservice methods).
        /// </summary>
        public string Code { get; set; }

        /// <summary>
        /// The value of the points associated with the point category.
        /// </summary>
        public int Value { get; set; }

        /// <summary>
        /// The description of the point category.
        /// </summary>
        public string Description { get; set; }

        /// <summary>
        /// The description of the point category approrpiate for public display.
        /// </summary>
        public string DescriptionDisplay { get; set; }

        /// <summary>
        /// Determines if the point category is active.
        /// </summary>
        public bool IsActive { get; set; }

        /// <summary>
        /// Determines of the point category is related to Ineta.
        /// </summary>
        public bool IsIneta { get; set; }

        /// <summary>
        /// The pulral display name of the point category.
        /// </summary>
        public string DisplayNamePlural { get; set; }

        #endregion

        #region Constructors

        /// <summary>
        /// Public constructor.
        /// </summary>
        public PointCategory()
        {
        }

        /// <summary>
        /// Public constructor that gets the required properties to create a basic instance.
        /// </summary>
        /// <param name="code">The string code of the point category.</param>
        public PointCategory(string code)
        {
            this.Code = code;
        }

        #endregion
    }
}
